<!DOCTYPE html>
<html lang="zh-cn">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>javascript 阶段</title>
</head>

<body>


    <script>
        // 阶乘: 
        // 1 * 2 * 3 * ... 98 *99 * NUM 
        // function calc(num){
        // 函数体
        // 判断 num 此刻是否为1 ,如果是返回值 1

        // 如果num不是1,那就需要继续 num - 1 

        // return 3 * 2 * 1
        // }
        // var res = calc(3); 
        // console.log(res);// 6 

        // 思考:
        // num * ( num -1) * ((num - 1) - 1) * .... 2 * 1 ;

        // 10 * 9 * 8 * ... * 2 * 1 

        // 编码:
        // 定义函数 calc 
        function calc(num) {
            // 判断num是否等于1 ,如果是1,返回结果是1
            if (num == 1) {
                return 1;
            }
            // 返回阶乘的结果  num * ( num -1)
            return  num * calc(num - 1);
            // return  3 * calc(3 - 1);
            // return  3 * 2 * calc(2-1);
            // return  3 * 2 * 1;
        }
        // var res = calc(1)
        // console.log(res);// 1

        var res = calc(3);
        console.log(res);// 6


        // var res = calc(10)
        // console.log(res);// 3628800
    </script>
</body>

</html>